# _*_coding : utf-8 _*_
# @Time : 2025/11/3 14:22
# @Author : Eavan
# @filename : run_allcase.py

import os
import pytest

def run_all(case_file=None):
    # 项目根目录
    base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    # 用例路径
    if case_file:
        case_path = os.path.join(base_dir, 'cms_case', case_file)
    else:
        case_path = os.path.join(base_dir, 'cms_case')
    # 报告路径
    result_dir = os.path.join(base_dir, 'report', 'allure-results')
    report_dir = os.path.join(base_dir, 'report', 'allure-report')
    os.makedirs(result_dir, exist_ok=True)
    os.makedirs(report_dir, exist_ok=True)

    # Step 1: 运行 pytest，生成 Allure JSON
    pytest_args = [
        case_path,
        '--clean-alluredir',
        f'--alluredir={result_dir}',
        '-s', '-v'
    ]
    pytest.main(pytest_args)

    # Step 2: 生成 HTML 报告
    os.system(f'allure generate {result_dir} -o {report_dir} --clean')

    # Step 3: 打开报告
    os.system(f'allure open {report_dir}')

if __name__ == '__main__':
    # 如果想运行单个文件：
    # run_all('test_Case_001.py')
    run_all()






# import os,pytest
#
# def run_all():
#
#     # 获取项目根目录
#     base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
#
#     # 获取用例目录（cms_case 下所有 test_*.py 文件
#     case_dir = os.path.join(base_dir,'cms_case')
#
#     # Allure结果和报告目录
#     result_dir = os.path.join(base_dir,'report','allure-results')
#     report_dir = os.path.join(base_dir,'report','allure-report')
#
#     # 创建目录（如果不存在）
#     os.makedirs(report_dir,exist_ok=True)
#     os.makedirs(result_dir,exist_ok=True)
#
#     # Step1:运行 pytest 并生成 allure Json 结果
#     pytest_args = [
#         case_dir,
#         '--clean-alluredir',
#         f'--alluredir={result_dir}',        # 输出 json 结果
#         '-s','-v'                           # 显示详细信息
#     ]
#     pytest.main(pytest_args)
#
#     # Step2:生成 Allure 报告 HTML 页面
#     generate_cmd = f'allure generate {result_dir} -o {report_dir} -- clean'
#     os.system(generate_cmd)
#
#     # Step3:打开报告页面（浏览器）
#     open_cmd = f'allure open {report_dir}'
#     os.system(open_cmd)
#
# if __name__ == '__main__':
#     run_all()